#include<iostream>
using namespace std;

//class Date
//{
//	friend ostream& operator<<(ostream& out, Date& d);
//public:
//	Date(int year, int month, int day)
//		:_year(year)
//		,_month(month)
//		,_day(day)
//	{}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//ostream& operator<<(ostream& out, Date& d)
//{
//	out << d._year << "/" << d._month << "/" << d._day;
//	return out;
//}

//class Date
//{
//	friend class Time;
//public:
//	Date(int year = 2000, int month = 1, int day = 1)
//		:_year(year)
//		, _month(month)
//		, _day(day)
//	{}
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//class Time
//{
//public:
//	Time(int hour, int minute, int second)
//		:_hour(hour)
//		,_minute(minute)
//		,_second(second)
//	{}
//	void Print()
//	{
//		cout << _d._year << " " << _d._month << " " << _d._day << " "
//			 << _hour    << " " << _minute   << " " << _second;
//	}
//private:
//	int _hour;
//	int _minute;
//	int _second;
//	Date _d;
//};
//
//int main(void)
//{
//	Time T1(2, 23, 15);
//	T1.Print();
//	return 0;
//}

class A
{
public:
	class B
	{
	public:
		B()
			:_b(2)
		{}
		void Print(const A& a)
		{
			cout << a._a << _b << endl;
		}
	private:
		int _b;
	};
	A()
		:_a(1)
	{}
private:
	int _a;
};
int main()
{
	A a;
	A::B b;
	b.Print(a);
	return 0;
}